package proy2redes;

import java.net.*;
import java.io.*;
import java.util.*;

public class dmon {
	static public HashMap<String,String> Usuarios = new HashMap<String,String>();
	static public int NumDrep = 0;
	static public int NumSubidos = 0;
	static public int NumBajados = 0;
	
	static public String obtenerTuser() {
		String tabla = "";
		for( Iterator<String> it = Usuarios.keySet().iterator(); it.hasNext();) { 
            String s = (String)it.next();
			tabla = tabla + "\n" + s;
		}
		if (tabla.equals("")) {
			tabla = "En este momento no hay usuarios conectados.";
		} else {
			tabla = "Tabla de usuarios:" + tabla;
		}
		return tabla;
	}
	
    public static void main(String[] args) throws IOException {
		//String comando = "connectLucia";
		//String accion = comando.substring(0,7);
		//String nombreUsuario = comando.substring(7);
		//System.out.println("ACCION: " + accion + " NOMBRE-USUARIO: " + nombreUsuario);
		new dmonAconsola().start();
		int puerto = 31109;
		int tamEntrada = args.length;
		int error = 1;
		if (tamEntrada == 2) {      
			if (args[0].equals("-p")) {
				try {
					puerto = Integer.parseInt(args[1]);
					error = 0;
				} catch (NumberFormatException e) {
					System.err.println("El puerto debe ser de tipo entero.\n");
					System.exit(-1);
				}
			}     
		} 
		if (tamEntrada != 0 && error == 1) { 
		   System.err.println("Debe especificar un n'umero de puerto usando -p antes del mismo.\n");
		   System.exit(-1);
		}
		ServerSocket servSock = null;
		try {
			servSock = new ServerSocket(puerto);
		} catch (IOException e) {
			System.err.println("No se pudo escuchar del puerto " + puerto + ".\n");
			System.exit(-1);
		}
		//int numero = 0;
		while (true) {
			//System.out.println("Aqui vamos " + numero);
			//Usuarios.put("Lucia","Hermosa");
			//String tabla = "";
			//for( Iterator<String> it = Usuarios.keySet().iterator(); it.hasNext();) { 
				//String s = (String)it.next();
				//tabla = tabla + "\n" + s;
			//}
			//System.out.println(tabla);
			//System.out.println("EL numero de Drep conectados es:" + NumDrep);
			//System.out.println("\nArchivos Bajados = " + NumBajados + "\nArchivos Subidos = " + NumSubidos);
			NumDrep = NumDrep + 1;
			new dmonAdrep(servSock.accept()).start();
			//numero = numero + 1;
		}
	}
}
